<?php
/**
 * ErrorHook
 * 
 * @author Alexey Strelnikoff <zog@zoggi.net>
 */

namespace Zoggi\ErrorHook;

/**
 * Нотификатор для отправки ошибок на емайл.
 */
class MailNotifier extends AbstractNotifier {

	/**
	 * Массив емайлов
	 * @var array
	 */
	private $emails;

	/**
	 * Возвращет нотификатор для отправки уведомлений об ошибках на емайл
	 * 
	 * @param int $level Уровень ошибок, которые нужно отправлять на емайл
	 * @param string $emails Один или несколько емайлов через запятую
	 * @param string $subject Сабжект письма
	 * @param string $headers Заголовки письма
	 */
	public function __construct( $level, $emails, $subject = 'Script Error', $headers = '' ) {
		$this->level = $level;
		$this->emails = explode(",", $emails);
		$this->subject = $subject;
		$this->headers = $headers;
	}

	public function notifyAll( array $errors ) {
		$message = '';
		foreach ( $errors as $error ) {
			if ( $error->checkLevel($this->level) ) {
				$message .= (string)$error . "\n";
			}
		}
		if ( $message ) {
			foreach ( $this->emails as $email ) {
				mail($email, $this->subject, $message, $this->headers);
			}
		}
	}

	public function notifyOne( ErrorUnit $error ) {
		return true;
	}

}